{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import joblib\n",
    "from sklearn.model_selection import KFold\n",
    "from sklearn.model_selection import train_test_split\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 只使用交叉特征"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 6.82 s, sys: 2.04 s, total: 8.86 s\n",
      "Wall time: 21.7 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "data_cf_86 = joblib.load('./data_cf_86.lz4')\n",
    "data_label = pd.read_csv('../../preprocess_data/train_y_33465.csv',usecols=['label'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(33465, 7396)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = data_cf_86.fillna(-1).values\n",
    "y = data_label.values.ravel()\n",
    "x.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[10]\tcv_agg's auc: 0.795467 + 0.00739621\n",
      "[20]\tcv_agg's auc: 0.808173 + 0.00403747\n",
      "[30]\tcv_agg's auc: 0.813297 + 0.0025377\n",
      "[40]\tcv_agg's auc: 0.81904 + 0.00149701\n",
      "[50]\tcv_agg's auc: 0.821432 + 0.0012719\n",
      "[60]\tcv_agg's auc: 0.82287 + 0.00101752\n",
      "[70]\tcv_agg's auc: 0.823899 + 0.0010812\n",
      "[80]\tcv_agg's auc: 0.82408 + 0.000965448\n",
      "[90]\tcv_agg's auc: 0.824809 + 0.000967701\n",
      "[100]\tcv_agg's auc: 0.825276 + 0.000987267\n"
     ]
    }
   ],
   "source": [
    "import lightgbm as lgb\n",
    "parameters = {\n",
    "    'boost':'gbdt',\n",
    "    'num_leaves':100, \n",
    "    'scale_pos_weight':float(len(y)-np.sum(y))/float(np.sum(y)),\n",
    "    'max_depth':-1,\n",
    "    'learning_rate':.05,\n",
    "    'max_bin':200,\n",
    "    'min_data_in_leaf' : 60,\n",
    "    'objective':'binary',\n",
    "    'metric':'auc',\n",
    "    'num_threads':32\n",
    "}\n",
    "lgb_train = lgb.Dataset(x, y)\n",
    "eval_hist = lgb.cv(parameters,lgb_train,num_boost_round=100,nfold=3,verbose_eval=10)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['cf_eval_hist']"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "joblib.dump(eval_hist,'cf_eval_hist')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 只使用原始特征"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(33465, 86)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_sel = joblib.load('data_sel.lz4')\n",
    "data_label = pd.read_csv('../../preprocess_data/train_y_33465.csv',usecols=['label'])\n",
    "x = data_sel.fillna(-1).values\n",
    "y = data_label.values.ravel()\n",
    "x.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[10]\tcv_agg's auc: 0.80434 + 0.00493916\n",
      "[20]\tcv_agg's auc: 0.813412 + 0.00429815\n",
      "[30]\tcv_agg's auc: 0.818554 + 0.00423451\n",
      "[40]\tcv_agg's auc: 0.822973 + 0.00331589\n",
      "[50]\tcv_agg's auc: 0.82728 + 0.00340492\n",
      "[60]\tcv_agg's auc: 0.829465 + 0.00357342\n",
      "[70]\tcv_agg's auc: 0.831417 + 0.00334072\n",
      "[80]\tcv_agg's auc: 0.832526 + 0.00366264\n",
      "[90]\tcv_agg's auc: 0.833585 + 0.0040738\n",
      "[100]\tcv_agg's auc: 0.834235 + 0.00383452\n"
     ]
    }
   ],
   "source": [
    "import lightgbm as lgb\n",
    "parameters = {\n",
    "    'boost':'gbdt',\n",
    "    'num_leaves':60, \n",
    "    'scale_pos_weight':float(len(y)-np.sum(y))/float(np.sum(y)),\n",
    "    'max_depth':-1,\n",
    "    'learning_rate':.05,\n",
    "    'max_bin':200,\n",
    "    'min_data_in_leaf' : 60,\n",
    "    'objective':'binary',\n",
    "    'metric':'auc',\n",
    "    'num_threads':32\n",
    "}\n",
    "lgb_train = lgb.Dataset(x, y)\n",
    "eval_hist = lgb.cv(parameters,lgb_train,num_boost_round=100,nfold=3,verbose_eval=10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 查看交叉特征的重要性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "import lightgbm as lgb\n",
    "parameters = {\n",
    "    'boost':'gbdt',\n",
    "    'num_leaves':100, \n",
    "    'scale_pos_weight':float(len(y)-np.sum(y))/float(np.sum(y)),\n",
    "    'max_depth':-1,\n",
    "    'learning_rate':.05,\n",
    "    'max_bin':200,\n",
    "    'min_data_in_leaf' : 60,\n",
    "    'objective':'binary',\n",
    "    'metric':'auc',\n",
    "    'num_threads':32\n",
    "}\n",
    "lgb_train = lgb.Dataset(x, y)\n",
    "cf_lgb_model = lgb.train(parameters,lgb_train,num_boost_round=150,verbose_eval=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "cf_score = pd.Series(index=data_cf_86.columns, data=cf_lgb_model.feature_importance()).sort_values(ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['cf_score']"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "joblib.dump(cf_score,'cf_score')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_cf_86_fs10 = data_cf_86[cf_score[cf_score>10].index]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['data_cf_86_fs10.lz4']"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "joblib.dump(data_cf_86_fs10,'data_cf_86_fs10.lz4',compress='lz4')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 原始特征+部分交叉特征"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_sel = joblib.load('data_sel.lz4')\n",
    "data_cf_86_fs10 = joblib.load('data_cf_86_fs10.lz4')\n",
    "data_label = pd.read_csv('../../preprocess_data/train_y_33465.csv',usecols=['label'])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(33465, 234)"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "seg1 = data_cf_86_fs10.iloc[:,:30]\n",
    "seg1_1 = data_cf_86_fs10.iloc[:,40:50]\n",
    "seg2 = data_cf_86_fs10.iloc[:,70:80]\n",
    "seg3 = data_cf_86_fs10.iloc[:,90:100]\n",
    "seg4 = data_cf_86_fs10.iloc[:,110:160]\n",
    "seg5 = data_cf_86_fs10.iloc[:,160:200]\n",
    "\n",
    "data = pd.concat([data_sel,seg1,seg1_1,seg2,seg3,seg4,seg5],axis=1)\n",
    "# data = pd.concat([data_sel,data_cf_86_fs10.iloc[:,:190]],axis=1)\n",
    "x = data.fillna(-1).values\n",
    "y = data_label.values.ravel()\n",
    "x.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['train_data.lz4']"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "joblib.dump(data,'./train_data/train_data.lz4',compress='lz4')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_cf_sel = pd.concat([seg1,seg1_1,seg2,seg3,seg4,seg5],axis=1)\n",
    "cf_cols = list(data_cf_sel.columns)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['data_cf_sel.lz4']"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "joblib.dump(data_cf_sel,'data_cf_sel.lz4',compress='lz4')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['cf_cols']"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 挑选出的交叉特征\n",
    "joblib.dump(cf_cols,'cf_cols')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[10]\tcv_agg's auc: 0.813322 + 0.00998279\n",
      "[20]\tcv_agg's auc: 0.822612 + 0.00865531\n",
      "[30]\tcv_agg's auc: 0.827881 + 0.00680759\n",
      "[40]\tcv_agg's auc: 0.832431 + 0.00714708\n",
      "[50]\tcv_agg's auc: 0.835416 + 0.00727982\n",
      "[60]\tcv_agg's auc: 0.837473 + 0.00742338\n",
      "[70]\tcv_agg's auc: 0.839485 + 0.00736391\n",
      "[80]\tcv_agg's auc: 0.840743 + 0.00768314\n",
      "[90]\tcv_agg's auc: 0.841613 + 0.00740302\n",
      "[100]\tcv_agg's auc: 0.842131 + 0.00752714\n",
      "[110]\tcv_agg's auc: 0.842879 + 0.00756378\n",
      "[120]\tcv_agg's auc: 0.843327 + 0.00751755\n",
      "[130]\tcv_agg's auc: 0.843776 + 0.00724285\n",
      "[140]\tcv_agg's auc: 0.843852 + 0.00711768\n",
      "[150]\tcv_agg's auc: 0.843898 + 0.00718524\n",
      "[160]\tcv_agg's auc: 0.84416 + 0.0074572\n",
      "[170]\tcv_agg's auc: 0.844132 + 0.00744401\n",
      "[180]\tcv_agg's auc: 0.844427 + 0.00739833\n"
     ]
    }
   ],
   "source": [
    "import lightgbm as lgb\n",
    "parameters = {\n",
    "    'boost':'gbdt',\n",
    "    'num_leaves':100, \n",
    "    'scale_pos_weight':float(len(y)-np.sum(y))/float(np.sum(y)),\n",
    "    'max_depth':-1,\n",
    "    'learning_rate':.05,\n",
    "    'max_bin':200,\n",
    "    'min_data_in_leaf' : 100,\n",
    "    'objective':'binary',\n",
    "    'metric':'auc',\n",
    "    'num_threads':12\n",
    "}\n",
    "lgb_train = lgb.Dataset(x, y)\n",
    "eval_hist = lgb.cv(parameters,lgb_train,num_boost_round=180,nfold=5,verbose_eval=10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 记录\n",
    "0_cf 0.834235 \n",
    "10_cf 0.83454    \n",
    "20_cf 0.836408   \n",
    "30_cf 0.836872  \n",
    "40_cf 0.835974  \n",
    "50_cf 0.836184  \n",
    "60_cf 0.835422  \n",
    "70_cf 0.835138 \n",
    "80_cf 0.837075  \n",
    "90_cf 0.834802  \n",
    "100_cf 0.835856 \n",
    "110_cf 0.833503\n",
    "120_cf 0.835564  \n",
    "130_cf 0.836241\n",
    "140_cf 0.837007  \n",
    "150_cf 0.83745\n",
    "160_cf 0.836686  \n",
    "170_cf 0.837931\n",
    "180_cf 0.837041\n",
    "190_cf 0.839592 \n",
    "200_cf 0.838992 \n",
    "all_cf 0.839214  \n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f9c32475748>]"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAD8CAYAAAB3u9PLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xl81OW1+PHPyUbIyhKWLEDYIQFZBJRqcUErosVq21u9tdW2V9taxVqvrba2Vdvbvfe291drq61V6RVLXVFxqVutSoFgEiBA2LKHhED2hGwz5/fHfIcOIcskmWSynPfrlZfJd77znWe+Djl5nvM85xFVxRhjjAkJdgOMMcYMDhYQjDHGABYQjDHGOCwgGGOMASwgGGOMcVhAMMYYA1hAMMYY47CAYIwxBrCAYIwxxhEW7Ab0REJCgqampga7GcYYM2Ts3LnzuKpO8OfcIRUQUlNTycjICHYzjDFmyBCRAn/PtSEjY4wxgAUEY4wxDgsIxhhjAAsIxhhjHBYQjDHGABYQjDHGOCwgGGOMASwgGGOM3w5X1PPqnqPBbka/sYBgjDF++s1bh/jKnz/kjb3lwW5Kv7CAYIwxftp3tBaAO/+aTUn1ySC3JvAsIBhjjB9aXW4OV9SzJn0yLreyfmMmrS53sJsVUBYQjDHGD3nHG2h1KR9Ln8SPrlnIzoIq/vtvB4LdrIAaUsXtjDEmWHLL6gCYOzmW9KR4th4+zkPvHOac6eO4cO7EILcuMKyHYIwxfsgtqyM0RJg1MQaA7388nbmTYvnGpmzKa5uC3LrAsIBgjDF+2F9Wx/SEaEaFhQIQGR7Kg59dwskWF+s3ZtI2DPIJFhCMMcYPueW1zJ0ce9qxWRNj+eEnFrAtr5L/fetQkFoWOBYQjDGmG/XNbRRVnmTupNgzHvvk2Sl8cmkK/++tg7x/6HgQWhc4FhCMMaYbB8v/lVDuyA8+kc6MhGhufyqLirrmgWxaQFlAMMaYbnhnGM3rJCBERYTx4GeXUtfUyh1/ycLl1oFsXsBYQDDGmG7sL6sjKiKUKWOjOj1n3uQ47l+XznuHjvPQO4HLJ9ScbOWfR04E7HpdsXUIxhjTjdyyOmZPiiUkRLo87zPLp/DB4RP8998OsGL6eFZMH9fr16xpbOWP7+fxp/fzCBFh27dXExke2uvr+cN6CMYY0wVVJbe8jrmTYro9V0T40TULmTouivUbM6lsaOnx61U3tvDL13M5/6dv8b9vHuS8mQk8edM5/R4MwHoIxhjTpeP1LVQ2tDB3cpxf58eMCuM3/76Ua377Ad/YlMWjNyzvtmcBUNXQwh/fy+OxD/Kpb27j8gWTWb96NvMT/XvdQLCAYIwxXeguodyRBcnxfPfK+Xz3hRwe+ccRvnzBzE7PrWpo4Q/vHeGx9/NpaHGxduFkbrt4YAOBl18BQUTWAL8GQoE/qOpP2j0+FXgcGOOcc7eqbhGRFcDD3tOA+1T1Oec5twM3OccfUdVfBeD9GGNMQO0v85S87mzKaWeuP3caW4+c4Oev5bIsdRxnTxt72uOVDS088o8jPPFBPo2tLtYuTGT9xbN7/DqB1G1AEJFQ4EHgUqAY2CEim1V1r89p9wKbVPUhEUkDtgCpwB5gmaq2iUgikC0iLwLz8ASDFUAL8KqIvKSqQ3+pnzFmWMktqyMhJoKEmFE9ep6I8ONrzmJ3yT9YvzGTl9efz5ioCE7UN/PIP/J4Yms+J1tdXLEwkfWrZzOng0VvA82fHsIK4JCqHgEQkaeAqwDfgKCAt38TD5QCqGqjzzmRznkA84Ft3sdF5O/ANcDPevc2jDGmf+SW1/X6l3X86HB+c91SPvW7D7hzUzazJsWwYWsBJ1tdfPysJG67eBazB0Eg8PInICQDRT4/FwPntDvnPuB1EbkNiAYu8T4gIucAjwLTgM85vYU9wH+JyHjgJLAWyOjoxUXkZuBmgKlTp/rRXGOMCQy3WzlQXsd1K3r/u2fRlDHcffl8fvDSXt7KPca6RZ5AMGvi4AkEXoFKKl8HPKaqvxSRlcAGEVmgqm5V3Qaki8h84HEReUVV94nIT4HXgQYgC3B1dGFVfRgnD7Fs2bKhufzPGDMkFVY20tTq7lFCuSNfPC+VcdHhLEwec6p89mDkzzqEEmCKz88pzjFfXwI2AajqVjzDQwm+J6jqPqAeWOD8/EdVPVtVVwFVwPDaesgYM+TtP7UpTt9m/IgIVy9JGdTBAPwLCDuA2SIyXUQigGuBze3OKQRWAzg9gUigwnlOmHN8Gp5kcr7z80Tnv1Px5A+e7PO7McaYAPJOOZ3jx6K04aDbISNnzP9W4DU8U0ofVdUcEXkAyFDVzcCdwCMicgeexPGNqqoicj5wt4i0Am7gFlX11od9xskhtAJfU9XqwL89Y4zpvdzyWqaOiyIqYmQs2fLrXarqFjxTSX2Pfc/n+73AeR08bwOwoZNrfrRHLTXGmAGWW1YX1HUBA81qGRljTAeaWl3kn2jsc0J5KLGAYIwxHTh0rB6XW62HYIwxI11vahgNdRYQjDGmA7nldUSEhpA6PjrYTRkwFhCMMaYDuWV1zJwYQ1joyPk1OXLeqTHG9EBuWd2IGi4CCwjGGHOGmsZWymqbRlRCGSwgGGPMGXq7B8JQZwHBGGPayS0feTOMwAKCMcacIbesjtjIMCbHRQa7KQPKAoIxxrTjTSiLSLCbMqAsIBhjjA9VJbd8ZNUw8rKAYIwxPkprmqhrauvzHghDkQUEY4zxkevMMBppCWWwgGCMMafJLasHYM4g3PO4v1lAMMYYH7lltSTGRxIfFR7spgw4CwjGGONj/wjbFMeXBQRjjHG0utwcrqi3gGCMMSNd3vEGWl06IhPKYAHBGGNO8W6KM3fSyJtyChYQjDHmlNyyOkJDhJkTR86mOL4sIBhjjGN/WR3TE6IZFRYa7KYEhQUEY4xx5JbXjtiEMvgZEERkjYjkisghEbm7g8enisjbIpIpIrtEZK1zfIWIZDlf2SJytc9z7hCRHBHZIyIbRWRklRU0xgwq9c1tFFWeZN4kCwidEpFQ4EHgciANuE5E0tqddi+wSVWXANcCv3WO7wGWqepiYA3wexEJE5FkYL3z2AIg1HmeMcYExUFnDwTrIXRtBXBIVY+oagvwFHBVu3MU8Kbl44FSAFVtVNU253ikc55XGDBaRMKAKO9zjDEmGE7NMLKA0KVkoMjn52LnmK/7gOtFpBjYAtzmfUBEzhGRHGA38BVVbVPVEuAXQCFwFKhR1dd7/S6MMaaP9pfVERURypSxUcFuStAEKql8HfCYqqYAa4ENIhICoKrbVDUdWA7cIyKRIjIWTy9jOpAERIvI9R1dWERuFpEMEcmoqKgIUHONMeZ0uWV1zJ4US0jIyNoUx5c/AaEEmOLzc4pzzNeXgE0AqroVz/BQgu8JqroPqAcWAJcAeapaoaqtwLPARzp6cVV9WFWXqeqyCRMm+NFcY8xIsKekhr/sKAzItbyb4ozkhDL4FxB2ALNFZLqIROBJ/m5ud04hsBpARObjCQgVznPCnOPTgHlAvnP+uSISJZ496lYD+wLwfowxI8SPX9nHt57ZzZ6Smj5f63h9C5UNLSM6fwB+BAQnKXwr8BqeX9qbVDVHRB4QkXXOaXcCN4lINrARuFFVFTgfyBaRLOA54BZVPa6q24CngQ/x5BZCgIcD/N6MMcNUWU0THxw+AcCv3zzY5+tZQtkjzJ+TVHULnmSx77Hv+Xy/Fzivg+dtADZ0cs3vA9/vSWONMQZgc3YJqnDN0mSe/bCEPSU1LEiO7/X19ju7pI30gGArlY0xQ85zmaUsnjKG+9alExcZxq/e6FsvIbesjoSYCBJiRgWohUOTBQRjzJCSW1bHvqO1XL0kmbjIcG766Aze2FfO7uLe5xJyy0fupji+LCAYY4aU57NKCA0RrjwrEYAbz0slfnQ4v37zQK+u53YrB8rrRmzJa18WEIwxQ4bbrbyQWcKq2QmMd4Z3YiPDuemj03lj37Fe9RIKKxtpanUzd3JMoJs75FhAMMYMGdvzKymtaeITS04vlnDDR1IZExXOr97oeS9h/6kZRtZDsIBgjBkyns8sIToilI+lTT7teKyTS3hz/zF2FVf36Jq5ZXWIwJxJ1kOwgGCMGRKaWl28vPsoly2YzOiIMzew+fzKaU4voWczjnLLa5k6LoqoCL9m4Q9rFhCMMUPCO7nHqGtq4+ol7Wtrenh7CW/tP0Z2kf+9hNyyOuaO8JIVXhYQjDFDwnOZJUyIHcVHZiZ0eo43l+Dv6uWmVhf5JxqZZ1NOAQsIxpghoLqxhbf3V7BuURKhXVQjjRkVdqqXkOVHL+HQsXpcbmWOBQTAAoIxZgjYsruMFpe70+EiXzd8JJWxUeH82o8ZR94aRtZD8LCAYIwZ9J7PLGHWxBjSk7qfGhozKoybVs3g7dwKMgurujw3t7yOiLAQUsdHB6qpQ5oFBGNMn7jdyg9f2ssnH/qAplZXwK9fXNXI9vxKrl6SjKdafvduWOn0ErrJJeSW1TFrQgxhofarECwgGGP6wO1WvvvCHv7wXh47C6p45N0jAX+NF7I8262vW5Tk93OiR4Vx86qZvJNbwYdd9BJyy+psuMiHBQRjTK+43cp3nt/D/20r5JYLZ7ImfTIPvnOI0uqTAXsNVeW5zBKWp45lyrie7XX8+ZXTGBcdwa87WZdQ09hKWW2TJZR9WEAwxvSY2618+7ndbNxeyNcumsldl83lO1fMRxV+/Mr+gL1OTmkth47Vn1Gqwh+eXsIM/n6g416C7YFwJgsIxpgecbuVu5/dxVM7irjt4ln858fmIiJMGRfFly+YyYvZpWw7ciIgr/VCVgnhocIVCxN79fzPnevpJXS0ejm33GYYtWcBwRjjN5db+eYzu9iUUcz61bP5xqVzTkv0fvWCmSTFR3Lfi3txubXPr/VCVikXzZ3ImKiIXl0jelQYX141g3cPVLCz4PReQm5ZHXGRYUyOi+xTO4cTCwjGGL+43Mo3n97F0zuL+folZwYDgNERoXz7ivnsO1rLxu2FfXq9rYdPcKyuuVfDRb4+t3Ia46MjzqiE6kkox/k9c2kksIBgjOmWy63c9ddsnvmwmDsumcPXL5nT6blXLEzknOnj+MXruVQ3tvT6NZ/LLCF2VBgXz5vY62sAREWE8eULZvCPg8fZWVAJeJLVueV1zLE9EE5jAcEY0yWXW7lzUxbPZpZw56VzuP2S2V2eLyLcty6d2pOt/M/fereL2ckWF6/uOcrahYlEhp9Z2bSnrj93Ggkx/8ollNY0UdfUZnsgtGMBwRjTqTaXm29syuL5rFLuumwut63uOhh4zU+M47PnTGPDPwtOzebpiTf2ldPQ4urzcJFXVEQYX14181QvIddpkyWUT2cBwRjToTaXmzs2ZfNCVinfXDOXr100q0fP/8alc4gbHc79m/ei2rME8/OZJSTGR3LO9HE9el5XPnvu1FO9hNyyegDmWNnr01hAMMacoc3l5va/ZPFidil3Xz6PWy7sWTAAGBsdwZ2XzmHrkRO8sqfM7+edqG/m7wcqWLc4iZAuKpv2VFREGF+5wNNLeHpnEUnxkcSPDg/Y9YcDvwKCiKwRkVwROSQid3fw+FQReVtEMkVkl4isdY6vEJEs5ytbRK52js/1OZ4lIrUi8vXAvjUzHKkq33w6O2Dz3M2ZWl1ubn8qi5d3HeXba+fxlQtm9vpa162YyrzJsfzXy/s42eJfnaOXdx+lza1+VTbtqc+e48klHK5osBXKHeg2IIhIKPAgcDmQBlwnImntTrsX2KSqS4Brgd86x/cAy1R1MbAG+L2IhKlqrqoudo6fDTQCzwXkHZlh7XBFA5syinn2w5JgN2VYanW5Wb8xk5d3H+XeK+Zz86reBwOAsNAQ7luXTkn1SX7/7mG/nvNcZgnzJscyrx8SvqMjQk8FOFuhfCZ/eggrgEOqekRVW4CngKvanaOA9/9ePFAKoKqNqtrmHI90zmtvNXBYVQt62ngz8ninDe4uqQlyS4Yft1tZvzGTV/aU8d0r0/iPj84IyHXPnTGeK85K5KF3DlNc1djluQUnGsgsrO6X3oHXZ8+ZxtqFk1m7oHern4czfwJCMlDk83Oxc8zXfcD1IlIMbAFu8z4gIueISA6wG/iKT4DwuhbY2NmLi8jNIpIhIhkVFRV+NNcMZxn5ntWmB8rraG4LfKnlkey5zBJe2VPGPZfP40vnTw/otb+9dj4i8OMtXdc5ej6zFBFYt9j/yqY9NToilN9+9mwWTRnTb68xVAUqqXwd8JiqpgBrgQ0iEgKgqttUNR1YDtwjIqfWiYtIBLAO+GtnF1bVh1V1maoumzBhQoCaa4aqnQVVjA4Ppc2tHHBmipi+q29u4yev7mfRlDHcFKCega/kMaO55cJZvLz7KB8cPt7hOarK81klnDt9PInxowPeBtM9fwJCCTDF5+cU55ivLwGbAFR1K57hodN2wlbVfUA9sMDn8OXAh6pa3rNmm5HoRH0zR443cPVSTwd1T6kNGwXKb946REVdM/d9PC2gM3t83bxqBiljR3P/5r20udxnPJ5dXEPe8YZ+HS4yXfMnIOwAZovIdOcv+muBze3OKcSTC0BE5uMJCBXOc8Kc49OAeUC+z/Ouo4vhopHI7VYqG3q/3H848xYn+8TiZOIiwyyPECD5xxt49L08Prk0hSVTx/bb60SGh3LvFfPJLa/jyQ7qHD2fWUJEWAhrFk7utzaYrnUbEJwx/1uB14B9eGYT5YjIAyKyzjntTuAmEcnG8wv+RvWsRDkfyBaRLDyziG5R1eMAIhINXAo8G+g3NVS1tLm56YkMzvvJW5QEcJOR4WJnQRURoSGclRLPguR4ciwgBMQPX95LeKjwrTVz+/21LkufzHmzxvPL1w+c9odPq8vNi9mlXDp/EnGRtjYgWPzKIajqFlWdo6ozVfW/nGPfU9XNzvd7VfU8VV3kTCd93Tm+QVXTnWNLVfV5n2s2qOp4VbV/1TgLgZ7K5M39x2hxuXnonUPBbtKgk1FQxYLkOCLDQ1mQHM++sjpaOxh6MP57J/cYb+w7xm2rZzNxAMpAiwjf/3g69c1t/PL13FPH3zt0nBMNLQErVWF6x1YqDwIut3LnX7N5ZU8Z37syjX9bNoVNO4o5WmO9BK+mVhe7i2tYluopZZCeFEdLm5uD5ZZY7q2WNjcPvLSX6QnRfOG81AF73TmTYvncudPYuL2QHCcP9HxmCWOiwrlgjk0cCSYLCEHmdivfeW73qXoxXzx/OrdcOBO3Kg+9499CnpFgT0kNLS43Z0/zjHEvTI73HLfEcq89sTWfIxUNfPfK+YwK63tF0Z6445I5xDt1juqb23gtp4wrFiYSEWa/koLJ7n4QqSr3v5jDUzuKWL969ql6MVPGRfHpZSk8tb3IegmODCeh7A0IqeOjiY4ItTxCL1XUNfPrNw5y4dwJXDxv0oC/fnxUOHddNo/t+ZXc8ZcsmlrdNrtoELCAECSqyk9e2c/jWwu4edUM7mhXY/6WC2fhVuV31ksAPAvSpidEkxAzCoCQECE9KZ49pT0vrWzg56/t52Sri+9e2b4KzcD5zPIppCfF8be95aSMHX0q2JvgsYAQJL9+8yC/f/cInzt3GvdcPu+MbfymjIvik0tT2LijiLKapiC1cnBQVT4srDrjF8aC5Hj2ltb2ee/ekWZXcTV/3VnMF85LZeaE4O0YFhoi3L8uHYBrliTbVpaDgAWEIPjd3w/zqzcO8m/LUrh/XXqn/xC+dtEs3G7ld38f2b2EI8cbqGxoYdkZASGOk60ujlRYYtlfqsp9m3MYHz2K9X5udtOflqWO44WvncdXe1Fe2wSeBYQB9tj7efzklf2sW5TEj685q8tVoVPHR3HN0mSe3F5Iee3I7SXsdOoXLUs9s4cAlljuieezSviwsJpvrplL7CCZ779oyhhGRwxsUtt0zALCAHpqeyH3vbiXy9In8ct/W0SoHyUCbr1oNq4R3kvIKKhkTFQ4MxJOH96YkRBNZHgIu4stj+CP+uY2frxlP4tS4vnU0pRgN8cMQhYQBshzmcXc89xuLpw7gf+9bgnhof7d+qnjo7h6STJPbivk2AjtJWQUVHH21LFn9KbCQkNIS4yzHoKfHnz7EMfqmvn+uvR+q1dkhjYLCANgy+6j3Lkpm5UzxvO768/u8ZzvWy+aRZtb+d3fj/RTCwevyoYWjlQ0cHZqxzNQvIlltyWWu5R/vIE//iOPa5Yks7Qf6xWZoc0CQj97c1856zdmsnTqWB75/DIiw3s+VpqaEM0nFifzf9sKOFY3snoJ3oJ2y6Z1vNn6gqR46pvbKKjseuOVke6HL+8jLFT41uXzgt0UM4hZQOhH/zhYwVf//CFpSXE8+oXlRI8K6/W1br14Fq0uNw+PsF5CRkEl4aHCWSnxHT7uTSxb5dPO/f1ABW/sK+e2i2czaQDqFZmhywJCP9l25AQ3PZHBjAnRPPHFFX2u4Djd6SX8eVsBFXXNAWrl4Lczv4oFyfGd9qxmT4ohIjTEVix3otXl5oEXc0gdH8UXz08NdnPMIGcBoR+0udx85c87SR4zmj//xzmMiYoIyHVvvXgWLW1uHvZzs/KhrrnNxa6SmjPWH/gKDw1hXmKsJZY78fgH+RyuaODeK9IGvF6RGXosIPSDnNJaqhpbuePSOadKLQTCjAkxXLU4mQ3/LOB4/fDvJewpqaGlzc3ZneQPvNKT4tlTUotnCw7jdbzeU69o1ZwJrJ4/MdjNMUOABYR+sCO/EoAVqV3/IusNby/hkXeHfy4hI//0gnadWZgcT83JVoqrrBCgr1+8lsvJVhffuzLNykIYv1hA6Afb8iqZNj6qXzYcmTkhhnWLknhi6/DvJWQUVJE6PooJsV33shYkxwGeHoXx2F1cw18yirjxI6nMmhi8ekVmaLGAEGBut5KRX8nyfugdeN168Wya2lw88o/h20tQVT4sqOp2uAg8G66EhYjlERyqyn0v5jA+OoL1lwS/XpEZOiwgBNjhinqqGltZMb3/AsKsiTF8/KwkNmwt4MQw7SXkHW/gREPLGfWLOhIZHsrsSbHsLrESFuCpV7SzoIq7Lptr+xObHrGAEGDb+zF/4Gv96lmcbHXxyD/y+vV1gsWbP+hqhpGvhclx5JTUjPjE8vH6Zh54cS+Lpozh02dPCXZzzBBjASHAduRVMiF2FNPGR/Xr68yaGMuVZyXxxNZ8Khtaen2dghMNfOe53Xz+0e00tboC18A+yiioJH50uN/1+hckx3OioYWyEVrvyev7L+TQ0Ozi55/qupKuMR2xgBBgO/KrWJE6bkBmday/2NNL+EMvcgk5pTXctjGTi37xDn/NKObdAxU8PIhmLmUUeDbE8feXWnqSs2K5eOTmEV7ZfZSXdx9l/epZzJkUG+zmmCHIAkIAFVc1UlJ9kuV+jHsHwuxJsaxdmMjjH+RT5UcvQVXZduQEN/5pO1f873u8vf8YN62awXvfuogrzkrkt+8coqQ6+FM3TxW068GWimmJcYQII3ZLzcqGFr77wh7Sk+L48gUzg90cM0T5FRBEZI2I5IrIIRG5u4PHp4rI2yKSKSK7RGStc3yFiGQ5X9kicrXPc8aIyNMisl9E9onIysC9reDwrj9Y3o8J5fbWXzybhhYXf3iv87/u3W7ljb3lfOp3W/nMw/9kd3ENd102l/fvvph7Lp/PxLhIvr12PgA/2rJvoJreqX8VtPM/IIyOCGXWxJgRW8LigRdzqG5s5eefWuR3aXVj2uu22pqIhAIPApcCxcAOEdmsqnt9TrsX2KSqD4lIGrAFSAX2AMtUtU1EEoFsEXlRVduAXwOvquqnRCQC6N9B9wGwPa+K2Mgw5k2OG7DXnDs5lisWJvL4BwXc9NEZp5XJaHW5eWlXKb975wi55XUkjxnNA1el82/LppxRGyh5zGhuuXAW//23A1x/zglWzhw/YO+hPW9Bu0VTxvToeQuS4nn/8PF+atXg9cbecp7PKuX21bNJSxq4z54Zfvz5U2IFcEhVj6hqC/AUcFW7cxTwfhLjgVIAVW10fvkDRDrnISLxwCrgj855Lapa3Zc3MhjsyK9k2bSxfu2EFki3rZ5FfXMbf3zPM+PoZIuLJ7bmc9Ev3uGOv2SjKP/zmUW8c9eFfH5laqeF4m5eNYOUsaO5/8Uc2lzuAXwHp9uZX0V6UucF7TqTnhxPeW3ziCoRXtPYyref2828ybF87SLbl9j0jT/1mJOBIp+fi4Fz2p1zH/C6iNwGRAOXeB8QkXOAR4FpwOec3sJ0oAL4k4gsAnYCt6tqQ2/fSLBVNrRw6Fg91yxNHvDXnjc5jssXTOZP7+cTFhLCE1vzOdHQwtnTxnL/unQumjvRr+RsZHgo916Rxlf+vJMntxfy+ZWp/d729rwF7T5/7rQeP3ehUwo7p6SWifNGRpnnH7y8lxMNLfzxhuVEhNlQkembQH2CrgMeU9UUYC2wQURCAFR1m6qmA8uBe0QkEk8gWgo8pKpLgAbgjNwEgIjcLCIZIpJRUVERoOYGXn/WL/LH+tWzqW9u43/eOMBZKfFs+vJKnvnqR1g9f1KPph9elj6J82cl8MvXD/RpOmtveQva+bMgrT3vcMlIKWHxdu4xnt5ZzJdXzWBhJ/tFGNMT/gSEEsB3hUuKc8zXl4BNAKq6Fc/wUILvCaq6D6gHFuDpZRSr6jbn4afxBIgzqOrDqrpMVZdNmDDBj+YGx/a8SiLCQoL2D3N+Yhx/+sJytqz/KH/6woper5QWEb7/8TTqm9v45eu5AW5l9/5V0K7n7Y8ZFcaMhOgRsVlOXVMr3352N7MmxrB+tZWnMIHhT0DYAcwWkelO8vdaYHO7cwqB1QAiMh9PQKhwnhPmHJ8GzAPyVbUMKBKRuc7zVwN7GcJ25FeyZMqYoNacv2juxIAkFWdPiuWGlak8ub1wwP/aziioYpofBe06syA5npwRMPX0R1v2U17bxM8/dVavtmU1piPdBgQnKXwr8BqwD89sohwReUBE1jmn3QncJCLZwEbgRvXUEDgfz8yiLOA54BZV9U4DuQ34PxHZBSwGfhTINzaQGprbyCmt7df6RQPt9ktmMy4qgvu4zeleAAAXwklEQVRfzBmwchD/KmjX+3UcC5LjKKk+GfDhrvLaJlqDmGj39f6h42zcXsh/fHQGS6YOzJoXMzL4tcmvqm7BM5XU99j3fL7fC5zXwfM2ABs6uWYWsKwnjR2sPiyswuXWfq1wOtDiR4dz12VzufvZ3WzOLuWqxf2fLD9V0K4Xw0VeC5wVy3tKalg1JzBDjOW1TVzw87e589K53LRqRkCu2VsNzW1865ldzEiI5huXzglqW8zwY9MSAmBHXiUhAkv78JftYPTpZVNYmBzPj7fsp6G5rfsn9FGGd0FaH1Z6e0tYBLIU9pPbCmlqdZ9aMBdMP311PyXVJ/mZDRWZfmABIQC25VWSnhRPzCi/OlxDRmiIcN+6NMpqm/jtO4f6/fV25lcRFxnGLD8L2nUkPiqcqeOiyAlQKeyWNjdPbi8EYO/R4OYmth05wRNbC7hhZSrLhlFv1AweFhD6qLnNRVZR9bAaLvJ19rRxXLMkmUfezaPgRP8uE8koqOxRQbvOLEiOC1gP4ZU9R6moa2bF9HEUVjZS29QakOv21MkWF998ZhdTx0XxzTVzu3+CMb1gAaGP9pTU0NzmHlYJ5fa+dfk8wkOFH7zUf3WOqhpaOFzREJC/fNOT4ik40UjNyb7/8n5iawGp46P4qlMwbl+QZjD94vVcCk408tNPnkVUxPDqiZrBwwJCH23P84wrD1SF02CYFBfJbatn88a+ct7JPdYvr+Edn+/LDCOvUyuW+9hL2FNSw86CKj63MpV0Z9/mYExp3VlQyaPv53H9uVODWmPKDH8WEPpoR34lMydEMz6md/Pmh4ovnJfK9IRoHnhpLy1tgZ9+mVFQRViIsCilZwXtOpLurMXoax7h8Q/yiYoI5VNnpzAxNpKEmFEDHhCaWl3c9fQukuJHc/fl8wf0tc3IYwGhD1xuZUd+5bAeLvIaFRbK965M40hFA49/kB/w6+8sqCQ9OZ7REX2fOTM+ZhRJ8ZF9WrFc2dDCC9mlXL0kmfjRnn2J05PiBjyx/Ks3DnKkooGffHLhsJu0YAYfCwh9kFtWR11T27BNKLd30byJXDxvIr9+82BAK4o2t7nILq7p0f4H3UlPju9TYvkvO4poaXNzw0dSTx1LS4rjYHkdzW0Ds9VodlE1D797mM8sm8JHZw/esi1m+LCA0AenCtqNgB6C13evTKO5zcXPXg1cnaM9JbWegnYBDAgLk+PJO95AfS/WT7jcyp//WcDKGeNP24oyPSmONrdysLw+YO3sjNutfPPpXUyMjeQ7V9pQkRkYFhD6YHt+JUnxkaSMHfJ7+/htekI0Xzp/Bk/vLCazMDALtXYWeALr2QFMzC9IjkMV9vViiOeNfeWUVJ88rXcA/1r0tncA8giHK+rJLa9j/erZxEWG9/vrGQMWEHpNVdmRVzmg22UOFrdePIuJsaO4b3MObnff6xxl5FcxdVwUE2MDt4eBt4TF7uKeDxs9sTWfpPhILpk/8bTj08ZFER0ROiB5hMwiz35RI6n3aYLPAkIvFVY2cqyuecTkD3zFjArjnrXzyC6u4ekPi/t0LVVlZ0FVQIeLACbGRTIxdlSP8wgHy+t4/9AJPnvuNMLa7U0cEiLMT4zr83RWf2QWVhMb6SnnbcxAsYDQS9vyRl7+wNcnFiezdOoYfvbq/j6t3s0/0ejZ3a0f1nEsSI7v8dTTJ7YWEBEWwrXLp3T4eFpSHHtLawPSM+pKVlE1i6eM6fOqbWN6wgJCL+3Iq2RMVHif6u4MZSLC/esWcKKhhev/sK3X4+oZTmK+LxVOO7MgKY6Dx+o42eLfrKDaplae+bCYj5+V1Om6kvSkOBpaXBRWNgayqadpaG4jt6yWJVP6vibDmJ6wgNBLO/IrWZ46bkT/BbcwJZ4H/30pJVUnWfeb9/jpq/tpau3ZlMydBZ6CdrMnBj6wpifH41bYV+ZfsHpmZzGNLS5ubJdM9pWW6F0F3X95hN0lNbgVFk+1gGAGlgWEXjhW10T+icag7Z88mKxdmMibd17A1UuSeeidw6z51bt8cOh49090ZBRUsTQABe06cqqEhR8L1NxuZcPWApZMHdPlNqhzJscQFiLsPdp/eYTMQk9CefGU4VsOxQxOFhB6YYe3ftEIzR+0NyYqgp9/ehFP/sc5KPDvf9jGXX/Nprqx613LqhtbOHSsPuAJZa/E+EjGRUewx488wj8OHefI8YYuewfgWbE9a2JMv/YQsoo824iOi47ot9cwpiMWEHphR34lo8NDT9XMMR4fmZXAa19fxS0XzuS5zBIu+e+/szm7tNMtOP9V0K5/AquIkJ4U51cJiyc+yCchZhSXL0js9lxvYrk/qCqZhdWWPzBBYQGhF7blVbJ02hjCQ+32tRcZHso318zjxdvOJ3nMaNZvzOSLj+2guOrMJKy3oN3ifvzltyA5ngPdlJsoPNHIW7nH+PcVU4gI6/7/aXpSPMfqmqmoaw5kUwE4WtPEsbrmfr0nxnTGfqP1UM3JVvaX1bIi1coQd2V+YhzP3nIe37syjW15lXzsf97lj+/l4fKZrrkzv4r0pLiAFLTrzMLkeNrcyoGyzstNbPhnPqEifPbcaX5dMy3RWwo78HmELGdB2pKplj8wA88CQg99WFCFKiyfbv9guxMaInzx/Om8fscqzpk+jh+8tJdrfvs+e0s9tYuyi6v7bbjI69SK5U6GjRpb2vjLjiIuWzCZSXH+rZROc4YK+2PFcmZhFRFhIcxPtOFIM/Csnm4Pbc+vJDxUWGIzQPyWMjaKR29czou7jvLAizms+817rFkwmeY2N8v6eWOhKeNGExcZ1umK5ReySqltaus2mewrfnQ4KWNH90tiOauomgVJcX4NXRkTaPap66EdeZUsCFDd/pFERFi3KIk3vnEB1yxN5qVdRwH6bYaR7+t6ViyfGRBUlcc/yGd+YlyP25GeFBfw7TRbXW52FdfYdFMTNBYQeqCp1UV2cbWtP+iDMVER/OxTi9h407n85JqFTPRzmKYvFiTHs6+sjlbX6Tu9bc+rZH9ZHTd+ZBoiPVsHkZ4UT96JBhp6UV67M7lldTS3uW1BmgkavwKCiKwRkVwROSQid3fw+FQReVtEMkVkl4isdY6vEJEs5ytbRK72eU6+iOx2HssI3FvqP1lF1bS6dEQWtAu0lTPHc+2KqQPyWulJcbS0uc/Yx+CJrQXEjw5n3aLkHl8zLdFTXnu/n6ug/eEtJ25TTk2wdBsQRCQUeBC4HEgDrhORtHan3QtsUtUlwLXAb53je4BlqroYWAP8XkR88xYXqepiVV3Wx/cxIHbkVSKCBYQhZoGzYtk3j3C05iSv5pTxmeVTejX8l57snWkUwIBQVE1CTAQpY0cH7JrG9IQ/PYQVwCFVPaKqLcBTwFXtzlHAOy0iHigFUNVGVfX2qSOd84as7fmVzJ0US3yUbVgylEwfH010ROhpeYQntxXiVuVzfk41bW9yXCRjo8J7XE21K1mF1SyeMrbHw1fGBIo/ASEZKPL5udg55us+4HoRKQa2ALd5HxCRc0QkB9gNfMUnQCjwuojsFJGbO3txEblZRDJEJKOiosKP5vaPNpebDwuqrHcwBIWECOlJ8aemnja3udi4vZDV8yYyZVzvdrvzrIKOD9jU05rGVo4cb2CJ5Q9MEAUqqXwd8JiqpgBrgQ0iEgKgqttUNR1YDtwjIt4s4vmquhTPUNTXRGRVRxdW1YdVdZmqLpswIXgbje87WkdDi8vqFw1R6clx7D1ai8utbNl9lOP1LWdskdlTaUlx5HaQrO6NrGJnQZrlD0wQ+RMQSgDf3UJSnGO+vgRsAlDVrXiGhxJ8T1DVfUA9sMD5ucT57zHgOTxDU4PWtrwTADbDaIhamBxPU6ubIxX1PP5BATMmRHPezITun9iF9KQ4WlxuDld0vgraX5mFVYjQZaVVY/qbPwFhBzBbRKaLSASepPHmducUAqsBRGQ+noBQ4TwnzDk+DZgH5ItItIjEOsejgY/hSUAPWjvyK5kybjST4/t/mqQJPG9i+f+2FZJVVM0NK1P7XHLbW9wwEHmErKJq5kyMJTbS8lMmeLoNCM6Y/63Aa8A+PLOJckTkARFZ55x2J3CTiGQDG4Eb1VPi8nwgW0Sy8PQCblHV48Ak4D3n/O3Ay6r6aqDfXKCoKhn5VVa/aAibkRBNZHgIT2zNJzoilGuW9nyqaXvTE2KIDA/pcx5BVU9tmWlMMPlVukJVt+BJFvse+57P93uB8zp43gZgQwfHjwCLetrYYDlc0cCJhhZWWP2iISss1FMfKLOwmk+enRKQv8RDQ4R5k+P6XOQu/0Qj1Y2tllA2QWcrlf2ww9n312YYDW1nOcNGn1+ZGrBrevdG6GzPB394F6TZCmUTbBYQ/LAjr5KEmAimJ0QHuymmD26+YCa/u34pswK4f3N6Uhy1TW0UV53s9TWyiqqJjghl9sTYgLXLmN6waqd+2JZXyfLUcbZgaIhLHjOa5DGBXQX8r70Ranu9piGzsJqzUsYQ2g/7ShvTE9ZD6EZp9UlKqk+ywtYfmA7MmxxHiPR+b4SmVhf7jtbacJEZFCwgdMPyB6YroyNCmTkhhr29TCzvKamhza22IM0MChYQurE9r5LYUWG2g5XplDex3BveLTOth2AGAwsI3diRX8nSaWNtfNd0Kj0pjtKaJqoaWnr83MyiapLHjGZirC14NMFnAaELVQ0tHCivt/yB6VJaomc6a29KYWcVVlvvwAwaFhC68MFhT/0iyx+YrqQ5JSz2Hu1ZHuFYbRMl1Sctf2AGDZt22gG3W/nTB/n87NX9TI6L5CwrOGa6MC46gsT4yB73EDKd/IGtUDaDhQWEdooqG/nPv2azLa+SS+ZP5EfXLCQyvOc7apmRJb0XieWsomrCQz37KhgzGFhAcKgqf9lRxA9e2ouI8LNPncWnz06xxWjGL2lJ8by1/xgnW1x+b8mZWVjF/MQ4+4PDDBoWEPCM5d797G7e2n+MlTPG8/NPn0XK2N6tOjUjU1piHG6F3PI6v6qWutzKruIaPn12ygC0zhj/jPiAsDm7lO8+v4emVhff/3haQOrkm5Hn1N4IpTV+BYQD5XU0trhshpEZVEZsQKhqaOHeF/bw8q6jLJ4yhl/+2yJmTghc0TMzsqSMHU1cZJjfiWXvgrQlU6ykuhk8RmRAeGt/Od96ZjfVjS3cddlcvrxqBmGhNgPX9J6I9GjFclZhNWOjwpk23oYmzeAxogJCXVMrP3xpH3/JKGLe5Fge+8Jym+FhAiYtMZ4ntxfgcmu3K9szi6pYNGWMTVowg8qICQhbD5/gP/+azdGak3z1wpl8/ZLZjAqz2R0mcNKT4mhqdZN3vJ5ZXextUNfUysFj9VyxMGkAW2dM94Z9QGhqdfGzV3N59P08UsdH8devrOTsabby2AReevK/9kboKiDsKq5B1QramcFn2A+cq8LfDxzj8yunseX2j1owMP1m5oQYIsJCus0jnKpwmmIBwQwuw76HMDoilBdvO5+oiGH/Vk2QhYeGMHdSbLczjTILq5gxIZr4qPABapkx/hn2PQTAgoEZMGmJceSU1qCqHT6uqmQVVdt0UzMojYiAYMxASU+Oo6qxlbLapg4fL646yfH6FssfmEHJr4AgImtEJFdEDonI3R08PlVE3haRTBHZJSJrneMrRCTL+coWkavbPS/Uec5LgXk7xgRXmrOzXk5Jx8NGpyqcWslrMwh1GxBEJBR4ELgcSAOuE5G0dqfdC2xS1SXAtcBvneN7gGWquhhYA/xeRHzHb24H9vXtLRgzeMxPjEME9h7tJCAUVhEZHsK8yZ3PQjImWPzpIawADqnqEVVtAZ4Crmp3jgLeTYfjgVIAVW1U1TbneKRzHgAikgJcAfyh9803ZnCJHhXG9PHR5JR2vFlOVlE1ZyWPsZXxZlDy51OZDBT5/FzsHPN1H3C9iBQDW4DbvA+IyDkikgPsBr7iEyB+BXwTcPeu6cYMTvOT4jrsITS3ucgprbX8gRm0AvVnynXAY6qaAqwFNohICICqblPVdGA5cI+IRIrIlcAxVd3Z3YVF5GYRyRCRjIqKigA115j+k54UR1HlSWpOtp52fN/ROlra3H5VQzUmGPwJCCXAFJ+fU5xjvr4EbAJQ1a14hocSfE9Q1X1APbAAOA9YJyL5eIagLhaRP3f04qr6sKouU9VlEyZM8KO5xgSXN7HcfoFaVmEVYFtmmsHLn4CwA5gtItNFJAJP0nhzu3MKgdUAIjIfT0CocJ4T5hyfBswD8lX1HlVNUdVU53pvqer1AXlHxgSZt2Bi+2GjzKJqJsWNIjF+dDCaZUy3ul2xpaptInIr8BoQCjyqqjki8gCQoaqbgTuBR0TkDjyJ4xtVVUXkfOBuEWnFkyu4RVWP99u7MWYQmBA7igmxo85ILNuCNDPY+bWEV1W34EkW+x77ns/3e/EMA7V/3gZgQzfXfgd4x592GDNUpLfbG+FEfTMFJxq5bsXUILbKmK7Z3Ddj+kF6UhyHjtXT3OYCILvYFqSZwc8CgjH9IC0xnja3crC8HoDMwmpCQ4SFKbYhkxm8LCAY0w/Sk7x7I3jyCFlF1cydFGuFFs2gZgHBmH4wdVwUMaPCyCmtxe32VDi1BWlmsLOAYEw/CAkR5ifGsre0liPH66lrarP8gRn0LCAY00/SEuPYd7SWDwuchLL1EMwgZwHBmH6SnhRPQ4uL57NKiI0MY0ZCTLCbZEyXLCAY00/SnMTyB4dPsHjKGEJCJMgtMqZrFhCM6SezJ8UQ5gQBK2hnhgILCMb0k1Fhocye5NkIx/IHZiiwgGBMP/JWPl2UYgHBDH62SsaYfnTjR1KZPSmG8TGjgt0UY7plAcGYfrQwJd7KVZghw4aMjDHGABYQjDHGOCwgGGOMASwgGGOMcVhAMMYYA1hAMMYY47CAYIwxBrCAYIwxxiGqGuw2+E1EKoCCXj49ATgewOYMN3Z/umf3qGt2f7oXjHs0TVUn+HPikAoIfSEiGaq6LNjtGKzs/nTP7lHX7P50b7DfIxsyMsYYA1hAMMYY4xhJAeHhYDdgkLP70z27R12z+9O9QX2PRkwOwRhjTNdGUg/BGGNMF4Z9QBCRNSKSKyKHROTuYLdnsBCRfBHZLSJZIpLhHBsnIn8TkYPOf8cGu50DRUQeFZFjIrLH51iH90M8/tf5TO0SkaXBa/nA6eQe3SciJc7nKEtE1vo8do9zj3JF5LLgtHrgiMgUEXlbRPaKSI6I3O4cHzKfo2EdEEQkFHgQuBxIA64TkbTgtmpQuUhVF/tMg7sbeFNVZwNvOj+PFI8Ba9od6+x+XA7Mdr5uBh4aoDYG22OceY8A/sf5HC1W1S0Azr+za4F05zm/df49DmdtwJ2qmgacC3zNuQ9D5nM0rAMCsAI4pKpHVLUFeAq4KshtGsyuAh53vn8c+EQQ2zKgVPVdoLLd4c7ux1XAE+rxT2CMiCQOTEuDp5N71JmrgKdUtVlV84BDeP49DluqelRVP3S+rwP2AckMoc/RcA8IyUCRz8/FzjEDCrwuIjtF5Gbn2CRVPep8XwZMCk7TBo3O7od9rk53qzPk8ajPMOOIvkcikgosAbYxhD5Hwz0gmM6dr6pL8XRbvyYiq3wfVM/0M5uC5rD70amHgJnAYuAo8MvgNif4RCQGeAb4uqrW+j422D9Hwz0glABTfH5OcY6NeKpa4vz3GPAcnu58ubfL6vz3WPBaOCh0dj/sc+VQ1XJVdamqG3iEfw0Ljch7JCLheILB/6nqs87hIfM5Gu4BYQcwW0Smi0gEniTX5iC3KehEJFpEYr3fAx8D9uC5Nzc4p90AvBCcFg4and2PzcDnnVki5wI1PkMCI0q7Me+r8XyOwHOPrhWRUSIyHU/idPtAt28giYgAfwT2qep/+zw0dD5Hqjqsv4C1wAHgMPCdYLdnMHwBM4Bs5yvHe1+A8XhmQRwE3gDGBbutA3hPNuIZ8mjFM5b7pc7uByB4Zq8dBnYDy4Ld/iDeow3OPdiF5xdcos/533HuUS5webDbPwD353w8w0G7gCzna+1Q+hzZSmVjjDHA8B8yMsYY4ycLCMYYYwALCMYYYxwWEIwxxgAWEIwxxjgsIBhjjAEsIBhjjHFYQDDGGAPA/wc5v+bv54zLFgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(range(0,220,10),[0.834235, \n",
    " 0.83454 ,   \n",
    " 0.836408,   \n",
    " 0.836872,  \n",
    " 0.835974,  \n",
    " 0.836184,  \n",
    " 0.835422,  \n",
    " 0.835138, \n",
    " 0.837075,  \n",
    " 0.834802,  \n",
    " 0.835856, \n",
    " 0.833503,\n",
    " 0.835564,  \n",
    " 0.836241,\n",
    " 0.837007,  \n",
    " 0.83745, \n",
    " 0.836686,  \n",
    " 0.837931,\n",
    " 0.837041,\n",
    " 0.839592, \n",
    " 0.838992, \n",
    " 0.839214, ])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
